package com.capsule.chapter.queue;

/**
 * <p>
 *  抽象被观察者接口
 *  声明了添加、删除、通知观察者方法
 * </p>
 *
 * @author xiachaoyang
 * @version V1.0
 * @date 2018年07月04日 9:59
 * @modificationHistory=========================逻辑或功能性重大变更记录
 * @modify By: {修改人} 2018年07月04日
 * @modify reason: {方法名}:{原因}
 * ...
 */
public interface Observerable {

    /**
     * 注册
     * @param observer
     */
    void registerObserver(Observer observer);

    /**
     * 移除
     * @param observer
     */
    void removeObserver(Observer observer);

    /**
     * 通知
     */
    void notifyObserver() throws InterruptedException;
}
